As computing technology has become ubiquitous in everyday life, so too has the need for storing data created or used by computers for various tasks. As a result, many improved storage solutions have been developed. Among such solutions are storage devices including a combination of a network controller and a single storage element such as a solid-state drive (SSD). These storage devices provide remotely accessible and sharable block storage. Each device is typically a single component and may be accessed to obtain data stored therein.
To facilitate availability of stored in storage devices, solutions for providing data redundancy across multiple devices have been developed. However, these redundancy solutions face challenges in maintaining data integrity by ensuring atomicity, consistency, isolation, durability, and other properties of the data. Further, these redundancy solutions may require implementation of third party software and/or hardware for providing redundancy. As a result, these solutions face challenges in cost-effectiveness, scalability, and flexibility in adapting to specific requirements of client servers (e.g., service level agreements or other requirements that must be adhered to by client storages).
It would therefore be advantageous to provide a solution that would overcome the challenges noted above.